অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) একটি শক্তিশালী মেসেজ ব্রোকার সিস্টেম যা উচ্চ পরিসরে পারফরম্যান্স এবং রিলায়েবিলিটি নিশ্চিত করতে বিভিন্ন কনফিগারেশন সমর্থন করে। এর মধ্যে Master-Slave Configuration এবং Failover Mechanism দুটি গুরুত্বপূর্ণ ফিচার, যা ব্রোকারের উচ্চ অ্যাভেইলেবিলিটি এবং স্কেলেবিলিটি নিশ্চিত করে।
Master-Slave Configuration হল অ্যাকটিভএমকিউ-এর একটি উচ্চ অ্যাভেইলেবিলিটি (HA) কনফিগারেশন, যেখানে একটি ব্রোকার মাষ্টার হিসেবে কাজ করে এবং অন্যটি স্লেভ হিসেবে কাজ করে। মাষ্টার ব্রোকার মূল কার্যক্রম পরিচালনা করে, এবং স্লেভ ব্রোকারটি মাষ্টারের কার্যক্রমের ব্যাকআপ হিসেবে কাজ করে। যদি মাষ্টার ব্রোকার ডাউন হয়ে যায়, স্লেভ ব্রোকার স্বয়ংক্রিয়ভাবে তার ভূমিকা গ্রহণ করে, এবং সিস্টেমের সেবা অব্যাহত থাকে।
<broker xmlns="http://activemq.apache.org/schema/core"
brokerName="localhost" dataDirectory="${activemq.data}">
<!-- Master Configuration -->
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
<!-- Master-Slave Replication Configuration -->
<networkConnectors>
<networkConnector uri="failover:(tcp://localhost:61616,tcp://localhost:61617)?randomize=false" />
</networkConnectors>
<transportConnectors>
<transportConnector uri="tcp://localhost:61616"/>
</transportConnectors>
</broker>
এখানে:
randomize=false
ব্যবহার করে ব্রোকারগুলোর মধ্যে কোনো রাউন্ড-রবিন ব্যালান্সিং হয় না, বরং মাষ্টার প্রথমে যোগাযোগ স্থাপন করবে।Failover Mechanism এমন একটি প্রক্রিয়া যার মাধ্যমে অ্যাকটিভএমকিউ মেসেজ ব্রোকার সিস্টেমে একটি ব্রোকার ব্যর্থ হলে অন্য ব্রোকার স্বয়ংক্রিয়ভাবে কার্যক্রম চালিয়ে যায়। Failover Mechanism অ্যাপাচি অ্যাকটিভএমকিউ-এ ডিস্ট্রিবিউটেড সিস্টেমে ব্রোকারের মধ্যে উচ্চ অ্যাভেইলেবিলিটি এবং রিলায়েবিলিটি নিশ্চিত করতে ব্যবহৃত হয়।
<broker xmlns="http://activemq.apache.org/schema/core"
brokerName="localhost" dataDirectory="${activemq.data}">
<!-- Failover Configuration -->
<transportConnectors>
<transportConnector uri="failover:(tcp://localhost:61616,tcp://localhost:61617)?randomize=false"/>
</transportConnectors>
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
</broker>
এখানে:
common.read_more